﻿// 871. 约数之和.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://www.acwing.com/problem/content/873/
给定 n 个正整数 ai，请你输出这些数的乘积的约数之和，答案对 109+7 取模。

输入格式
第一行包含整数 n。

接下来 n 行，每行包含一个整数 ai。

输出格式
输出一个整数，表示所给正整数的乘积的约数之和，答案需对 109+7 取模。

数据范围
1≤n≤100,
1≤ai≤2×109
输入样例：
3
2
6
8
输出样例：
252
*/

/*
如果 N = p1^c1 * p2^c2 * ... *pk^ck
约数个数： (c1 + 1) * (c2 + 1) * ... * (ck + 1)
约数之和： (p1^0 + p1^1 + ... + p1^c1) * ... * (pk^0 + pk^1 + ... + pk^ck)
*/
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int T, n;
const int MOD = 1000000000 + 7;
unordered_map<int, int> prime;
void solve() {
	cin >> n;
	if (n == 1) return;
	for (int i = 2; i * i <= n; i++) {
		while (n % i == 0) {
			prime[i]++;
			n /= i;
		}
	}
	if (n != 1) {
		prime[n]++;
	}

}


int main()
{
	cin >> T;
	while (T--) {
		solve();
	}
	long long ans = 1;
	for (auto e : prime) {
		int p = e.first;
		int t = e.second;
		long long sum = 1;
		while (t--) {
			sum = p * sum + 1;
			sum %= MOD;
		}

		ans *= sum;
		ans %= MOD;
	}

	cout << ans << endl;
	return 0;
}

 